package com.meng.mini.spring.beans;

/**
 * @author Meng Xu
 * @version 1.0.0
 * @date 2024-02-18 15:24
 **/
public interface BeanDefinitionRegistry {

    /**
     * 载入bean 信息
     * @param name bean name
     * @param definition bean信息对象
     */
    void registerBeanDefinition(String name, BeanDefinition definition);

    /**
     * 删除beanDefinition
     * @param name bean name
     */
    void removeBeanDefinition(String name);

    /**
     * 根据bean name 获取beanDefinition
     * @param name bean name
     * @return bean definition
     */
    BeanDefinition getBeanDefinition(String name);

    /**
     * 判断 bean definition 是否存在
     * @param name bean name
     * @return true or false
     */
    boolean containsBeanDefinition(String name);
}
